/*****************************************************************************
Copyright 2006 Kervin L. Pierre
    EMAIL: otlkcon@adevsoft.com

This file is part of Otlkcon.

Otlkcon is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.

Otlkcon is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Lesser GNU General Public License for more details.

You should have received a copy of the Lesser GNU General Public License
along with Otlkcon; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

*******************************************************************************/


#pragma once

#ifndef USES_IID_IUnknown
#define   USES_IID_IUnknown
#endif
#ifndef USES_IID_IMAPIProp
#define   USES_IID_IMAPIProp
#endif
#ifndef USES_IID_IMsgStore
#define   USES_IID_IMsgStore
#endif
#ifndef USES_IID_IAttachment
#define   USES_IID_IAttachment
#endif
#ifndef USES_IID_IMSLogon
#define   USES_IID_IMSLogon
#endif
#ifndef USES_IID_IMSProvider
#define   USES_IID_IMSProvider
#endif
#ifndef USES_IID_IXPProvider
#define   USES_IID_IXPProvider
#endif
#ifndef USES_IID_IABProvider
#define   USES_IID_IABProvider
#endif
#ifndef USES_IID_IABLogon
#define   USES_IID_IABLogon
#endif
#ifndef USES_IID_IXPLogon
#define   USES_IID_IXPLogon
#endif
#ifndef USES_IID_IMAPIContainer
#define   USES_IID_IMAPIContainer
#endif
#ifndef USES_IID_IMAPIFolder
#define   USES_IID_IMAPIFolder
#endif
#ifndef USES_IID_IMessage
#define   USES_IID_IMessage
#endif
#ifndef USES_IID_IMAPIStatus
#define   USES_IID_IMAPIStatus
#endif
#ifndef USES_IID_IMAPITable
#define   USES_IID_IMAPITable
#endif
#ifndef USES_IID_IMAPITableData
#define   USES_IID_IMAPITableData
#endif
#ifndef USES_IID_IMAPIControl
#define   USES_IID_IMAPIControl
#endif
#ifndef USES_IID_IStream
#define   USES_IID_IStream
#endif
#ifndef USES_IID_IMAPIPropData
#define   USES_IID_IMAPIPropData
#endif
#ifndef USES_IID_IMAPIAdviseSink
#define   USES_IID_IMAPIAdviseSink
#endif
#ifndef INITGUID
#define   INITGUID
#endif

#include <windows.h>
#include <limits.h>
#include <crtdbg.h>

#include <mapi.h>
#include <mapispi.h>
#include <mapival.h>
#include <initguid.h>

// This is constant to the entire message store.  Same guid used for internal property set
static const MAPIUID otlkcon_null_guid = {0};

static const MAPIUID otlkcon_mdb_provider_guid 
                              = {0xC3, 0x6B, 0x65, 0x7D, 0x55, 0xAE, 0x4c, 0xf2,
                                 0x91, 0x4F, 0xA6, 0x82, 0x88, 0x81, 0x7D, 0x61};

static const MAPIUID otlkcon_ab_provider_guid 
                              = {0x6D, 0xEA, 0xF8, 0x35, 0x9A, 0xEB, 0x47, 0xCC,
                                 0x9E, 0x55, 0x8C, 0x74, 0x0A, 0x0B, 0x5B, 0xC9};

static const MAPIUID otlkcon_imsgstore_guid 
                              = {0x00, 0x02, 0x03, 0x06, 0x00, 0x00, 0x00, 0x00,
                                 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46};

static const MAPIUID otlkcon_imapifolder_guid 
                              = {0x00, 0x02, 0x03, 0x0C, 0x00, 0x00, 0x00, 0x00,
                                 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46};

static const MAPIUID otlkcon_imessage_guid = *(const MAPIUID*)&IID_IMessage;
//                              = {0x00, 0x02, 0x03, 0x07, 0x00, 0x00, 0x00, 0x00,
//                                 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46};

static const MAPIUID otlkcon_iattachment_guid 
                              = {0x00, 0x02, 0x03, 0x08, 0x00, 0x00, 0x00, 0x00,
                                 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46};

static const MAPIUID otlkcon_imapitable_guid 
                              = {0x00, 0x02, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00,
                                 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46};

static const MAPIUID otlkcon_account_details_guid 
                              = {0x44, 0xd4, 0xbb, 0xdd, 0xce, 0x0f, 0x4d, 0x10,
                                 0xb6, 0x5b, 0x01, 0x00, 0x4a, 0x04, 0x2a, 0x88};

static const MAPIUID otlkcon_xpprovider_guid 
                              = {0x1d, 0xef, 0x00, 0x2d, 0xbe, 0x33, 0x41, 0x1c,
                                 0x9f, 0x7f, 0x27, 0xc, 0x11, 0xe7, 0xdc, 0xa7};
